<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // Promise.prototype.then(callbackA[,callbackB]);
            // callbackA取值function对应的是promise对象的resolve执行代码
            // callbackB取值function对应的是promise对象的reject执行代码
        
        function returnPromise(){
            var pro = new Promise(function(resolve,reject){
                resolve();
                // reject();
            });
            return pro;
        }
        // var p=returnPromise();
        // var p2=p.then(function(){
        //     //定义常规的js代码
        //     // 1.如果函数中没有定义return，该then函数会返回一个用于描述当前函数中js运行状态的promise实例对象，
        //     // 后续的then函数将根据状态调用对应的函数
        //     var num=1;
        //     // console.log(num);
        //     consol.log(num);
        // },function(){
        //     console.log("p-reject");
        // });
        // p2.then(function(){
        //     console.log("上一个函数执行成功");
        // },function(error){
        //     console.log("上一个函数执行失败"+error);
        // });

    //     var p3=returnPromise();
    //     var p4=p3.then(function(){
    //         //2.如果then函数中定义return关键字，但返回的结果不是自定义的promise对象，
    //         // 函数中return会将返回的结果作为新的Promise对象resolve状态的参数进行传递
    //         //新的promise对象依然是对该then方法状态的监控
    //         // return "字符串";
    //         // return 11111;
    //         // return ["aa","bb","cc"];
    //         console.log(111);
    //         return {username:"alice"};
    //     },function(){
    //         console.log("p-reject");
    //     });
    //    p4.then(function(data){
    //        console.log("上一个then函数执行成功，接受的参数：",data);
    //    },function(error){
    //         console.log("上一个函数执行失败"+error);
    //    });

    //     var p5=returnPromise();
    //     var p6=p5.then(function(){
    //         //3.如果then方法中定义了return关键字，但返回的是自己新创建的(自定义)promise对象，自定义的promise对象将自行完成状态变化，影响后续then函数的方法执行
    //       var num=1;
    //       console.log(num);
    //       return new Promise(function(resolve,reject){
    //             // resolve("嘻嘻");
    //             // reject("哈哈");
    //             setTimeout(reject,2000,"我是参数");
    //       });
    //     },function(){
    //         console.log("p-reject");
    //     });
    //    p6.then(function(data){
    //        console.log("上一个then函数执行成功，接受的参数：",data);
    //    },function(error){
    //         console.log("上一个函数执行失败"+error);
    //    });

    var p5=returnPromise();
    p5.then(function(){
            //3.如果then方法中定义了return关键字，但返回的是自己新创建的(自定义)promise对象，
            // 自定义的promise对象将自行完成状态变化，影响后续then函数的方法执行
          var num=1;
          console.log(num);
          return new Promise(function(resolve,reject){
                // resolve("嘻嘻");
                // reject("哈哈");
                setTimeout(reject,2000,"我是参数");
          });
        },function(){
            console.log("p-reject");
    }).then(function(data){
           console.log("上一个then函数执行成功，接受的参数：",data);
    },function(error){
        console.log("上一个函数执行失败"+error);
    });

    </script>
</head>
<body>
    
</body>
</html>